package com.mdb.open.epay.domain.po.customer;

/*
 * Copyright (C), 2017-2019 澳发科技(MDB)
 * FileName: CustBaseInfoService.java
 * Author:   喻尊龙
 * Date:     2019-11-02
 * History:
 * <author>          <time>          <version>          <desc>
 * 喻尊龙         2019-11-02          V1.00             代码生成器初始生成代码
 * -----------------------------------------------------------
 * 作者姓名           修改时间           版本号            描述
 */


import com.baomidou.mybatisplus.annotation.*;
import com.mdb.bc.api.data.DataObjectBase;
import com.mdb.bc.api.enums.NationalityEnum;
import com.mdb.open.common.enums.DataChannelEnum;
import com.mdb.open.common.enums.trade.status.CustomerStatusEnum;
import com.mdb.open.common.enums.trade.type.BusinessNatureTypeEnum;
import com.mdb.open.common.enums.trade.type.CreditTypeEnum;
import com.mdb.open.epay.enums.type.CertTypeEnum;
import com.mdb.open.epay.enums.type.CustomerTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 类描述：
 * 客户基本信息实体类
 *
 * @author 喻尊龙
 * @date 2019-11-02
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cust_base_info")
public class CustBaseInfo extends DataObjectBase {

    private static final long serialVersionUID = 1L;
    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 客户编码
     */
    @ApiModelProperty(value = "客户编码")
    @TableField("customer_code")
    private String customerCode;

    /**
     * 客户类型
     */
    @ApiModelProperty(value = "客户类型")
    @TableField("customer_type")
    private CustomerTypeEnum customerType;

    /**
     * 核心客户号
     */
    @ApiModelProperty(value = "核心客户号")
    @TableField("core_customer_no")
    private String coreCustomerNo;

    /**
     * 客户名称
     */
    @ApiModelProperty(value = "客户名称")
    private String name;

    /**
     * 中文名称
     */
    @TableField("name_cn")
    @ApiModelProperty(value = "中文名称")
    private String nameCn;

    /**
     * 英文名称
     */
    @ApiModelProperty(value = "英文名称")
    @TableField("name_en")
    private String nameEn;

    /**
     * 葡文名称
     */
    @ApiModelProperty(value = "葡文名称")
    @TableField("name_pt")
    private String namePt;

    /**
     * 证件号码
     */
    @ApiModelProperty(value = "证件号码")
    @TableField("credit_code")
    private String creditCode;

    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型")
    @TableField("credit_type")
    private CreditTypeEnum creditType;

    /**
     * 法人（负责人）名称
     */
    @ApiModelProperty(value = "法人（负责人）名称")
    @TableField("person_name")
    private String personName;

    /**
     * 法人（负责人）国籍
     */
    @ApiModelProperty(value = "法人（负责人）国籍")
    @TableField("person_nationality")
    private NationalityEnum personNationality;

    /**
     * 法人（负责人）证件类型
     */
    @ApiModelProperty(value = "法人（负责人）证件类型")
    @TableField("person_cert_type")
    private CertTypeEnum personCertType;

    /**
     * 法人（负责人）证件号码
     */
    @ApiModelProperty(value = "法人（负责人）证件号码")
    @TableField("person_cert_code")
    private String personCertCode;

    /**
     * 企业官网
     */
    @ApiModelProperty(value = "企业官网")
    private String website;

    /**
     * 经营性质
     */
    @ApiModelProperty(value = "经营性质")
    @TableField("business_nature")
    private BusinessNatureTypeEnum businessNature;

    /**
     * 客户状态
     */
    @ApiModelProperty(value = "客户状态")
    @TableField("cust_status")
    private CustomerStatusEnum custStatus;

    /**
     * 所属地区
     */
    @ApiModelProperty(value = "所属地区")
    private NationalityEnum country;

    /**
     * 数据渠道
     */
    @ApiModelProperty(value = "数据渠道")
    @TableField("data_channel")
    private DataChannelEnum dataChannel;

    /**
     * 支付密码
     */
    @ApiModelProperty(value = "支付密码")
    @TableField("payment_password")
    private String paymentPassword;

    /**
     * 签署账号
     */
    @ApiModelProperty(value = "签署账号")
    @TableField("sign_account")
    private String signAccount;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 创建用户(ID)
     */
    @ApiModelProperty(value = "创建用户(ID)")
    @TableField(value = "create_user_id", fill = FieldFill.INSERT)
    private String createUserId;

    /**
     * 创建用户(名称)
     */
    @ApiModelProperty(value = "创建用户(名称)")
    @TableField(value = "create_user_name", fill = FieldFill.INSERT)
    private String createUserName;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 更新用户(ID)
     */
    @ApiModelProperty(value = "更新用户(ID)")
    @TableField(value = "update_user_id", fill = FieldFill.INSERT_UPDATE)
    private String updateUserId;

    /**
     * 更新用户(名称)
     */
    @ApiModelProperty(value = "更新用户(名称)")
    @TableField(value = "update_user_name", fill = FieldFill.INSERT_UPDATE)
    private String updateUserName;

    /**
     * 乐观锁版本号
     */
    @ApiModelProperty(value = "乐观锁版本号")
    @Version
    private Integer version;

    /**
     * 删除标识
     */
    @ApiModelProperty(value = "删除标识")
    @TableLogic
    private boolean deleted;

}
